Selecting digital content for inclusion in media presentations

ABSTRACT

Implementations of the present disclosure are generally directed to receiving, a plurality of items of digital content from one or more data sources associated with a user, providing a plurality of clusters of digital content, each cluster including one or more items of digital content of the plurality of items of digital content, for a cluster: determining a goodness measure for each item of digital content within the cluster, the goodness measure being at least partially based on metadata associated with a respective item of digital content, and selecting at least one item of digital content from the cluster for inclusion in the media presentation, and providing the media presentation for display on a computing device of the user, the media presentation including the at least one item of digital content.

BACKGROUND

Users interact with multiple computer-implemented services to produce avariety of digital content. For example, users can use a socialnetworking service to post (share) digital content (e.g., text, video,images) with other users, can use a video-sharing service to postdigital content, and/or can use an image-sharing service to post digitalcontent. Further, users can use devices (e.g., smartphones, cameras) tocapture digital content (e.g., videos, images). Consequently, thedigital content generated by a user can be dispersed across multiplecomputer-implemented systems and/or devices.

SUMMARY

This specification relates to presentation of content received from aplurality of data sources. More particularly, this specification relatesto selecting digital content for inclusion in a media presentation.

In general, innovative aspects of the subject matter described in thisspecification can be embodied in methods that include actions ofreceiving, a plurality of items of digital content from one or more datasources associated with a user, providing a plurality of clusters ofdigital content, each cluster including one or more items of digitalcontent of the plurality of items of digital content, for a cluster:determining a goodness measure for each item of digital content withinthe cluster, the goodness measure being at least partially based onmetadata associated with a respective item of digital content, andselecting at least one item of digital content from the cluster forinclusion in the media presentation, and providing the mediapresentation for display on a computing device of the user, the mediapresentation including the at least one item of digital content. Otherimplementations of this aspect include corresponding systems, apparatus,and computer programs, configured to perform the actions of the methods,encoded on computer storage devices.

These and other implementations can each optionally include one or moreof the following features: providing the plurality of clusters ofdigital content includes providing respective clusters based on metadataof the digital content; actions further include, for the cluster:identifying two or more items of digital content as redundant digitalcontent, and removing an item of redundant digital content frominclusion in the media presentation; identifying two or more items ofdigital content as redundant digital content is performed based on oneor more of an overlap in metadata, and a difference in respectivegoodness measures; removing an item of redundant digital content frominclusion in the media presentation is performed in response todetermining that a goodness measure of at least one item of redundantdigital content does not meet a threshold goodness measure; the goodnessmeasure is further determined based on content of the respective item ofdigital content; providing a plurality of clusters of digital contentincludes processing the plurality of items of digital content based onone or more metadata values, each cluster corresponding to a respectivemetadata value; the one or more metadata values include time, location,duration, keyword, and type; items of digital content include images,videos and/or text; at least one data source is associated with acomputer-implemented service accessed by the user; and at least one datasource includes the computing device of the user.

The details of one or more implementations of the subject matterdescribed in this specification are set forth in the accompanyingdrawings and the description below. Other features, aspects, andadvantages of the subject matter will become apparent from thedescription, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an example environment in which users can interact withone or more computer-implemented services.

FIG. 2 depicts an example environment to provide media presentationsbased on digital content from one or more data sources.

FIG. 3 depicts an example process that can be executed in accordancewith implementations of the present disclosure.

FIGS. 4-13 depict example screenshots that can be provided in accordancewith implementations of the present disclosure.

FIG. 14 depicts an example process that can be executed in accordancewith implementations of the present disclosure.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

Implementations of the present disclosure are generally directed togenerating media presentations based on digital content that isaggregated from one or more data sources. More particularly,implementations of the present disclosure are directed to selectingdigital content for inclusion in a media presentation. Implementationsinclude receiving digital content from one or more data sources,processing the digital content to provide a set of digital content, andproviding a media presentation that includes digital content of the setof digital content. In some implementations, the media presentation isautomatically provided in response to user input. In someimplementations, data sources of the one or more data sources includesocial networking data sources associated with respectivecomputer-implemented social networking services. In someimplementations, data sources of the one or more data sources includecontent-sharing data sources associated with respectivecomputer-implemented content-sharing services. In some implementations,data sources of the one or more data sources include one or morecomputing devices associated with a user. In some implementations, amedia presentation is automatically updated. In some examples, the mediapresentation is automatically updated in response to digital contentbeing added to a data source of the one or more data sources.

In some implementations, digital content received from the one or moredata sources is processed based on one or more parameters. In someexamples, a parameter can be provided as metadata that is associatedwith the digital content. Example parameters can include type (e.g.,image, video), duration, time, keyword, location, and collection. Forexample, time can correspond to a time at and/or a time range withinwhich digital content was created and/or distributed (e.g., in a socialnetworking service, in a content-sharing service). As another example,duration can indicate a length of a video. Example keywords can includepre-fixed words and/or phrases, such as hashtags. In some examples,pre-fixed words/phrases enable content to be grouped and/or identifiedbased on one or more pre-fixed words/phrases associated therewith. Insome examples, location can correspond to a location at and/or fromwhich digital content was created and/or distributed (e.g., in a socialnetworking service, in a content-sharing service). In some examples, acollection can include a user-made grouping of digital content (e.g., an“album” of photos).

In some implementations, the digital content can be filtered based onthe one or more parameters for inclusion in a set of digital contentassociated with a particular presentation. In some examples, digitalcontent that does not correspond to the one or more parameters of theparticular presentation is not included in the set of digital contentfor the particular presentation.

In some implementations, digital content can be filtered based on one ormore quality indicators. In some examples, digital content that does notcorrespond to or meet thresholds of the one or more quality indicatorsis not included in the set of digital content for the particularpresentation.

FIG. 1 depicts an example environment 100, in which implementations ofthe present disclosure can be provided. In some examples, theenvironment 100 enables users to interact with one or morecomputer-implemented services. Example computer-implemented services caninclude social networking services, content-sharing services,micro-blogging services, and the like. In some examples,computer-implemented services enable users to distribute digital contentto other users. Example digital content can include images, videos, andtext. Implementations of the present disclosure are directed to acomputer-implemented presentation service that provides presentationsbased on digital content provided from one or more othercomputer-implemented services, and/or a computing device of a user.

Implementations of the present disclosure will be discussed in furtherdetail with reference to an example context. The example contextincludes a computer-implemented social networking service, acomputer-implemented micro-blogging service, a computer-implementedcontent-sharing service, and digital content provided from a computingdevice (e.g., a smartphone with camera, a video camera, a computerhaving digital content stored thereon). An example social networkingservice can include Facebook® provided by Facebook, Inc. An examplemicro-blogging service can include Twitter® provided by Twitter Inc.Example content-sharing services include image-sharing services and/orvideo-sharing services. An example content-sharing service includesInstagram® provided by Facebook, Inc. It is appreciated, however, thatimplementations of the present disclosure can be realized in anyappropriate contexts (e.g., multiple social networking services,multiple micro-blogging services, multiple content-sharing services,and/or any other appropriate computer-implemented service).

With continued reference to FIG. 1, the example environment 100 includesa computing system 102, a computing system 104, a computing system 106,a computing system 108, a computing device 110, a computing device 112,and a network 114. In some examples, the computing systems 102, 104,106, 108 include respective computing devices 102 a, 104 a, 106 a, 108 aand computer-readable memory provided as a persistent storage device 102b, 104 b, 106 b, 108 b, and can represent various forms of serversystems including, but not limited to a web server, an applicationserver, a proxy server, a network server, or a server farm.

The computing devices 110, 112 are associated with respective users 120,122. In some examples, the computing devices 110, 112 can each includevarious forms of a processing device including, but not limited to, adesktop computer, a laptop computer, a tablet computer, a wearablecomputer, a handheld computer, a personal digital assistant (PDA), acellular telephone, a network appliance, a smart phone, an enhancedgeneral packet radio service (EGPRS) mobile phone, or an appropriatecombination of any two or more of these example data processing devicesor other data processing devices.

The example environment 100 can support a client-server paradigm. Forexample, the computing devices 110, 112 can be clients and cancommunicate with one or more back-end server systems (e.g., thecomputing systems 102, 104, 106, 108) over the network 114. In someexamples, the network 114 can be provided as a large computer network,such as a local area network (LAN), wide area network (WAN), theInternet, a cellular network, or a combination thereof connecting anynumber of clients and servers. In some examples, the computing systems102, 104, 106, 108 can communicate with one another over the network114.

In accordance with the example context, the computing system 102 canprovide the computer-implemented media presentation service. Forexample, the computing system 102 can execute one or morecomputer-readable programs to provide functionality of thecomputer-implemented media presentation service discussed herein. Thecomputing system 104 can provide the computer-implemented socialnetworking service. For example, the computing system 104 can executeone or more computer-readable programs to provide functionality of thecomputer-implemented social networking service discussed herein. Thecomputing system 106 can provide the computer-implemented micro-bloggingservice. For example, the computing system 106 can execute one or morecomputer-readable programs to provide functionality of thecomputer-implemented micro-blogging service discussed herein. Thecomputing system 108 can provide the computer-implementedcontent-sharing service.

For example, the computing system 108 can execute one or morecomputer-readable programs to provide functionality of thecomputer-implemented content-sharing service discussed herein.

In the example context, the user 120 can interact with each of thesocial networking service, the computer-implemented micro-bloggingservice, and the computer-implemented content-sharing service. Forexample, the user 120 can use the computing device 110 to interact withthe social networking service provided by the computing system 104. Insome examples, the user 120 can create a post that includes digitalcontent, and can distribute the post to other users through the socialnetworking service (e.g., the user 122 can view the post using thecomputing device 112). As another example, the user 120 can use thecomputing device 110 to interact with the micro-blogging serviceprovided by the computing system 106. In some examples, the user 120 cancreate a post that includes digital content, and can distribute the postto other users through the micro-blogging service (e.g., the user 122can view the post using the computing device 112). As another example,the user 120 can use the computing device 110 to interact with thecontent-sharing service provided by the computing system 108. In someexamples, the user 120 can upload digital content to the content-sharingservice, and the digital content can be made available to other usersthrough the content-sharing service (e.g., the user 122 can view thedigital content using the computing device 112).

In the example context, digital content can be provided on the computingdevice 110. For example, the user can create digital content that can bestored in memory of the computing device 110. As one example, thecomputing device 110 can include a camera that can be used to capturestill images and/or video, which can be stored in memory of thecomputing device. As another example, a third-party camera can be usedto capture digital content (e.g., videos, images), which can betransferred to the computing device 110, and/or distributed using one ormore computer-implemented services.

In some examples, digital content can be provided as a set of digitalcontent that includes text, one or more images, and/or one or morevideos. In some examples, the set of digital content can also includeancillary content. In some examples, the ancillary content can beprovided as metadata to the digital content. Example ancillary contentcan include a location indicator (e.g., indicating a location, fromwhich the digital content was shared), a time indicator (e.g.,indicating a time/date that the digital content was shared), one or morekeywords. It is appreciated that ancillary content can include anyappropriate ancillary content.

In accordance with implementations of the present disclosure, users caninteract with the media presentation service provided by the computingsystem 102. For example, the user 120 can use the computing device 110to interact with the media presentation service provided by thecomputing system 102. In some examples, the user 120 can interact withthe media presentation service through a portal presented on thecomputing device 110. An example portal can include a web portal (e.g.,one or more web pages) that is displayed on the computing device 110using a browser application that is executed by the computing device110. In some examples, the user 120 can interact with the mediapresentation service through an application that is installed on andexecuted by the computing device 110. For example, the application canbe specific to the media presentation service (e.g., a mobile “app”provided for the presentation service).

In some examples, the user 110 enables access of the media presentationservice to digital content provided through the one or morecomputer-implemented services, and/or the computing device 110. In someexamples, the user 110 grants access to digital content stored in memoryof the computing device. In some examples, the user 110 providescredentials to the media presentation service, which the mediapresentation service can use to access digital content associated withthe user 110 in the one or more computer-implemented services. In someexamples, credentials can include information that can be used toauthenticate a user. Example credentials can include a username andpassword. In the example context, the user 110 can provide credentialsfor each of the social networking service, the micro-blogging service,and the content-sharing service.

In some examples, the media presentation service interfaces with each ofthe social networking service, the micro-blogging service, and thecontent-sharing service over the network 114. For example, each of thesocial networking service, the micro-blogging service, and thecontent-sharing service can expose a respective application programinterface (API), through which the media presentation service caninterface with the respective service. In some examples, and through theAPIs, the media presentation service provides respective credentials,which the respective services can use to authenticate access to digitalcontent associated with the user therein. If the credentials areauthenticated, the media presentation service is provided access to thedigital content associated with the user 110.

In accordance with implementations of the present invention, and asdiscussed in further detail herein, the media presentation servicereceives digital content from the computing device 110, and/or one ormore of the social networking service, the micro-blogging service, andthe content-sharing service. Accordingly, each of the computing device110, the social networking service, the micro-blogging service, and thecontent-sharing service can be considered a data source, from whichdigital content associated with the user 110 can be received. In someexamples, digital content can be received dynamically, as it is providedto each of the data sources. For example, digital content can beprovided to the media presentation service at a first time. At a secondtime, after the first time, the user 110 can provide additional digitalcontent (e.g., capture an image using the computing device 110). In someexamples, the additional digital content can be automatically providedto the media presentation service in response to storage of the digitalcontent in the data source. In some examples, the media presentationservice can periodically poll each of the data sources for additionaldigital content. In some examples, the media presentation service canpoll each of the data sources for additional digital content in responseto a user command to retrieve any available additional digital content.

Although the media presentation service is described above as beingprovided by the computing system 102, it is contemplated that the mediapresentation service can be provided by other computing devices eitheralone, or in concert. For example, the media presentation service can beprovided by the computing device 110 either alone, or in concert withother computing devices (e.g., the computing system 102, the computingdevice 112). In some examples, the computing device 110, and/or thecomputing device 112, may have limited computing resources (e.g.,processors, memory), as compared to the computing system 102. Asdescribed in further detail, implementations of the present disclosureprovide technical efficiencies, enabling more resource constraineddevices to provide media presentations, as described herein.

In accordance with implementations of the present disclosure, receiveddigital content can be processed to provide one or more mediapresentations that include at least some of the received digitalcontent. In some implementations, digital content received from the oneor more data sources is processed based on one or more parameters. Insome examples, parameters are provided as metadata associated with thedigital content. Example parameters can include time, keyword, location,and collection. For example, time can correspond to a time at and/or atime range within which digital content was created and/or distributed(e.g., in a social networking service, in a content-sharing service).Example keywords can include pre-fixed words and/or phrases, such ashashtags. In some examples, pre-fixed words/phrases enable content to begrouped and/or identified based on one or more pre-fixed words/phrasesassociated therewith. In some examples, location can correspond to alocation at and/or from which digital content was created and/ordistributed (e.g., in a social networking service, in a content-sharingservice). In some examples, a collection can include a user-madegrouping of digital content (e.g., an “album” of photos). Althoughexample parameters are provided above, it is appreciated that anyappropriate parameters can be used.

In some examples, a superset of digital content is received by the mediapresentation service, and the media presentation service groups thedigital content in one or more groups based on the one or moreparameters. In some examples, each group provides a set of digitalcontent. For example, a first group can be provided based on time (e.g.,a time range), and any digital content that corresponds to the time canbe included in the first group. As another example, a second group canbe provided based on a particular location, and any digital content thatcorresponds to the particular location can be included in the secondgroup. As another example, a third group can be provided based on aparticular keyword, and any digital content associated with theparticular keyword can be included in the third group. For example, itcan be determined that at least some of the digital content isassociated with the particular keyword, and in response, the third groupcan be provided, the remainder of the digital content can be reviewedfor the keyword, and any additional digital content that is associatedwith the keyword can also be included in the third group. As anotherexample, a fourth group can be provided based on a particularcollection, and any digital content associated with the particularcollection can be included in the fourth group. For example, it can bedetermined that the user created an album in the content-sharingservice, and in response, the fourth group can be provided and caninclude the digital content of the album.

In some examples, digital content can be included in one or more groups.For example, a particular item of digital content can be associated withthe time and the particular keyword. Consequently, the particular itemof digital content can be included in the first group and the thirdgroup.

In some examples, a group can include digital content from multiple datasources. For example, a group can include digital content from thecomputing device, the social networking service, and the content-sharingservice. Consequently, a group can be considered an aggregation ofdigital content across multiple data sources, at least one data sourceincluding a computer-implemented service.

In accordance with implementations of the present disclosure, a mediapresentation is created for each group. In some examples, the mediapresentation is automatically created for a particular group. Forexample, in response to the user granting access to at least one datasource, one or more groups of digital content are provided, andrespective one or more media presentations are created. That is, and insome examples, additional user input (e.g., beyond grant of access to atleast one data source), is not required for provision of the one or moremedia presentations. In this manner, the user can be quickly providedwith one or more media presentations absent additional user input tocreate and/or request a media presentation.

In some implementations, items of digital content in a group of digitalcontent can be filtered to provide a sub-set of items of digital contentthat is to be included in a respective presentation. In some examples,items can be filtered based on one or more quality indicators. In someexamples, an item that does not correspond to or meet thresholds of theone or more quality indicators is not included in the set of digitalcontent for the respective presentation. For example, each item ofdigital content can have at least one score associated therewith (e.g.,a quality score). In some examples, if the at least one score is below arespective score threshold, the respective item of digital content isnot included in the sub-set of digital content.

In some examples, a score (e.g., quality score) can be provided based onone or more factors associated with the respective item of digitalcontent. Example factors can include the make-up of the digital content,interactions of users with the digital content, and time. For example,the make-up of an item of digital content can include text, image and/orvideo provided in the digital content. In some examples, an item ofdigital content that only has text can be scored lower than an item ofdigital content that has both text and an image. As another example,interactions of users with an item of digital content can includecomments, shares, and/or “likes” of the item of digital content (e.g.,other users can comment on, share and/or “like” an item of digitalcontent within the computer-implemented service, from which the item ofdigital content was received). In some examples, an item of digitalcontent that has no comments, shares and/or “likes” can be scored lowerthan an item of digital content that has comments, shared and/or“likes.” As another example, and with respect to time, a more recentitem of digital content can be scored higher than a less recent item ofdigital content. In some examples, the score can be provided based onmultiple factors. For example, multiple sub-scores can be provided, eachsub-score being specific to a respective factor, and the sub-scores canbe combined to provide the score (e.g., sum of scores, average ofscores, weighted average of scores).

In some implementations, a score associated with an item of digitalcontent can change over time (e.g., dynamic score). For example, theitem of digital content can have a first score at a first time. Overtime, however, the item of digital content can, for example, beincreasingly commented on, shared, and/or “liked.” Consequently, at asecond time, the item of digital content can have a second score that ishigher than the first. In this manner, a sub-set of digital content canbe dynamic. For example, the item of digital content may not have beenincluded in the sub-set of digital content at the first time in view ofthe first score being below a threshold, but can be included in thesub-set of digital content at the second time in view of the secondscore being above the threshold. In some examples, the second score canbe less than the first score (e.g., the item of digital content isolder, and thus the score decreases based on age). Also, in this manner,the sub-set of digital content can be dynamic. For example, the item ofdigital content may be included in the sub-set of digital content at thefirst time in view of the first score being above the threshold, but isnot included in the sub-set of digital content at the second time inview of the second score being below the threshold.

In some implementations, a media presentation can include a maximumnumber of items of digital content that can be included. In someexamples, the sub-set of items that are to be included in the mediapresentation can include more items than the maximum number of items. Insome examples, the number of items in the sub-set of items can bereduced to the maximum number. For example, quality thresholds can beincreased, such that the sub-set of items does not include items thatwould have otherwise been included. In some examples, items of thesub-set of items are cycled through the media presentation, such that,at any given time, the number of items provided in the mediapresentation does not exceed the maximum number of items. In thismanner, each item of the sub-set of items can be included in the mediapresentation without exceeding the maximum number of items.

In some implementations, a media presentation can include a minimumnumber of items of digital content that should be included. In someexamples, the sub-set of items that are to be included in the mediapresentation can include less items than the minimum number of items. Insome examples, the number of items in the sub-set of items can beincreased to the maximum number. For example, quality thresholds can bereduced, such that the sub-set of items includes items that would haveotherwise been filtered. In some examples, items of the sub-set of itemsare recycled through the presentation, such that one or more items canbe redundantly displayed in the presentation.

Implementations of the present disclosure also provide for removal ofredundant digital content from a sub-set of digital content, and/orpreventing redundant digital content from being added to a sub-set ofdigital content. In some implementations, first digital content andsecond digital content can be identical (e.g., the first digital contentand the second digital content are redundant with respect to eachother). Consequently, the inclusion of both the first digital contentand the second digital content can result in more digital content beingincluded in a sub-set of digital content than desired. For example, thesub-set of digital content may be larger, if it includes both the firstdigital content and the second digital content than if it includes onlyone of the first digital content or the second digital content. This canresult in a burden on technical resources in terms of, for example,processing power, memory, and/or bandwidth (e.g., transmitting and/orprocessing the sub-set of digital content for display as a mediapresentation).

In view of this, implementations of the present disclosure avoidredundant digital content from being included in a sub-set of digitalcontent. In some implementations, and as described in further detailherein, redundant digital content can be automatically identified basedon metadata (e.g., parameters). In some implementations, digital contentis clustered based on respective metadata, and the clusters are used toselect digital content for inclusion in the sub-set of digital content.In this manner, and as described in further detail herein, inclusion ofredundant media content can be mitigated.

In further detail, metadata of digital content of one or more datasources can be scanned to determine, for example, time, location, andtype (e.g., among other example parameters). In some examples, thedigital content is divided into a plurality of clusters based on, forexample, time and location. In some examples, digital content that iscaptured at the same time, and/or within a threshold time with respectto each other is included in a cluster. In some examples, digitalcontent that is captured at the same location, and/or within a thresholddistance of each other is included in a cluster.

In some implementations, a hierarchy of clusters can be provided. Forexample, clusters can include higher-level clusters and lower-levelclusters. Example levels can include a moment, and a scene. In someexamples, a moment is considered to be a higher-level cluster withrespect to a scene, which can be considered a lower-level cluster. Forexample, a moment can include a plurality of scenes that have somecommonality in terms of time, duration, and/or location. In someexamples, time may include time of day (e.g., 10:15 AM) and date (e.g.,Sep. 1, 2016). In some examples, duration (e.g., of a video) can includeseconds, minutes, hours. In some examples, time and/or duration can beprovided in terms of seconds, minutes, hours, days, weeks, months,years, and so on. In some implementations, a scene can include aninstant in time, or a relatively short segment of time at the same (orapproximately the same) location. For example, a moment can include avideo captured during a day at different skate parks, and scenes caninclude segments of the video, each scene corresponding to a respectiveskate park. In this example, digital content can be selected forrespective skate parks using scenes.

In some implementations, the hierarchy of the clusters can change. Forexample, clusters can change, such that a desired number of digitalcontent in clusters can be achieved. In some examples, a hierarchy ofthe clusters may be dynamically determined. For example, metadata can beused to determine a number of digital content that would be included ina cluster. In some examples, a metadata value can be selected for acluster, and a number of digital content that would be included based onthe metadata value can be determined. The number can be compared to athreshold number (or a threshold range). If the number does not meetthreshold number (or is not within the threshold range), the metadatavalue can be changed, and a new number of digital content can bedetermined.

Implementations of changing the hierarchy of clusters is described infurther detail with reference to time as the metadata. In some examples,month can be selected as an initial metadata value, and a number ofdigital content that would be included in a cluster corresponding tomonth can be determined. The number can be compared to a thresholdnumber (or a threshold range). It can be determined that the numberexceeds the threshold number (or exceeds the higher end of the thresholdrange), such that more digital content would be included in the clusterthan desired. Consequently, the metadata value can be changed (e.g., toweek instead of month), and a new number of digital content can bedetermined. In this manner, it can be determined, for example, that thelargest cluster corresponds to week (e.g., as opposed to month, whichwould result in too many digital content being included in the largestcluster).

In some implementations, a higher-level cluster can be sub-divided intolower-level clusters. For example, the largest cluster may correspond toweek, and may be subdivided into days. In some examples, each daycluster can be further sub-divided (e.g., based on nearness of capturetime and/or capture location of the digital content therein). As anotherexample, the largest cluster may correspond to capture location ofEurope, and can be sub-divided into different countries. Each countrycluster can be sub-divided into different regions/cities inside thecountries, and/or different days/amount of time within the countries.

In some implementations, clustering of digital content can be iterative.For example, digital content can be re-clustered as new digital contentis made available (e.g., as digital content is added to the one or moresources). For example, when new images are detected in the camera rollof a device, the images can be incrementally added to the existingcluster structure of digital content, instead of re-computing the entirecluster structure from scratch. In this manner, computing resources canbe conserved. For example, A is a set of digital content, for which acluster structure can be determined. B is a set of digital content,which includes digital content that was created after creation of thecluster structure of the digital content of A. Adding B to the clusterstructure of A results in the same cluster structure as clustering theunion of A+B.

In some implementations, the entire set of new digital content is notincorporated into the existing cluster. For example, the most recentlycreated digital content (e.g., digital content that was created within athreshold time) can remain un-clustered in case the digital content ispart of an ongoing moment that is being captured.

In accordance with implementations of the present disclosure, aparticular item of digital content can be selected from respectiveclusters for inclusion in a media presentation. In some implementations,a goodness measure (e.g., provided as a numerical value) is determinedfor each item of digital content within a cluster, and one item ofdigital content is selected based on the goodness measures. In someexamples, the goodness measure indicates a quality of the respectivedigital content.

Examples of the goodness measure are described in further detail withreference to images and/or video as the digital content. In someexamples, a goodness measure can be provided based on parametersincluding, but not limited to, duration, resolution, brightness,contrast, color histogram, blur/sharpness, number of human faces in thedigital content, and/or the device that created/captured the digitalcontent (e.g., model of camera, smartphone). In some examples, valuesfor one or more parameters can be provided as metadata associated withthe digital content. In some examples, values for one or more parameterscan be provided by processing the digital content (or at least a portionof the digital content), as described in further detail herein.

In some examples, the goodness measure can be calculated as a weightedaverage of the parameter values. In some examples, parameters can beweighted to change their influence on the goodness measure. For example,a first parameter can be weighted more heavily than a second parameter,such that the first parameter influences the goodness measure more thanthe second parameter. In some examples, digital content that is absentvalues for certain parameters (e.g., no metadata is associated with thedigital content for a particular parameter) can result in a relativelylower goodness measure with respect to other digital content. In someexamples, a goodness measure is not determined for digital content thatdoes not include any metadata associated therewith (e.g., the goodnessmeasure can be automatically set equal to a minimum value). In someexamples, if an item of digital content does not include metadata, thedigital content is removed from its respective cluster(s).

In some implementations, the goodness measure of an item of digitalcontent can be determined based on a smaller (e.g., lower resolution,thumbnail) version of the item of digital content. In some examples,digital content can be processed to provide the smaller version. Forexample, data underlying the digital content can be filtered (e.g., by apredetermined %) to provide the smaller version having less data thanthe original content. In some examples, determining the goodness measurebased on the smaller version improves the use of computing resources, asless data need be processed to provide the goodness measure.

In some implementations, one or more items of digital content can beselected from a cluster for inclusion in a media presentation based onrespective goodness measures. In some examples, a single item of digitalcontent is selected from each cluster. In some examples, multiple itemsof digital content (e.g., 2, 3, 4, 5, . . . ) are selected from eachcluster. In some examples, the number of items of digital contentselected from a particular cluster can be based on the size of thecluster. For example, a first cluster can have a first number of itemsof digital content selected therefrom, and a second cluster, which issmaller than the first cluster, can have a second number of items ofdigital content selected therefrom, the second number of items beingless than the first number of items.

In some implementations, goodness measures are compared to a thresholdgoodness measure to determine whether particular items of digitalcontent are to be selected from a cluster for inclusion in the mediapresentation. In some examples, if the goodness measure meets thethreshold goodness measure (e.g., is greater than or equal to), theunderlying item of digital content can be selected for inclusion in themedia presentation.

In some implementations, although multiple items of digital contentcould be selected from a cluster for inclusion in the mediapresentation, it can be determined that a sub-set (e.g., 1) of themultiple items of digital content is actually selected. For example, acluster of digital content can include redundant digital content (e.g.,the same image multiple times). This can occur, for example, whenmultiple copies of digital content are included in a source (e.g.,device), and/or when digital content is shared from one source to one ormore other sources (e.g., digital content stored on a device is postedto one or more social networking services). In some examples, an overlapin metadata values and a difference in goodness measures can bedetermined, and the digital content can be identified as redundantdigital content based thereon. For example, if two items of digitalcontent include the same, or approximately the same metadata (e.g., theoverlap in metadata exceeds a threshold overlap), and the same, orapproximately the same goodness measure (e.g., the difference ingoodness measures is less than a threshold difference), the two items ofdigital content can be determined to be redundant. Consequently, onlyone of the items of digital content is selected for inclusion in themedia presentation.

In some implementations, goodness measures and closeness (e.g., in termsof metadata overlap) can be inversely related, as between two items ofdigital content. In some examples, although two items of digital contentmight otherwise be determined to be redundant (e.g., the overlap inmetadata exceeds a threshold overlap, and the difference in goodnessmeasures is less than a threshold difference), if the goodness measuresexceed a threshold goodness measure, both items of digital content maybe anyway selected for inclusion in the media presentation. In otherwords, although the items of digital content might be redundant, theirrespective qualities are sufficiently high, such that both are selectedfor inclusion in the media presentation.

In some implementations, selection of which digital content to includein a media presentation can be based on user input. In some examples, auser can provide user input indicating parameters and/or quality forselection of digital content to be included in a media presentation. Forexample, the user can indicate a particular time, date, location, and/ortype of digital content to be included in the media presentation. Asanother example, the user can indicate a minimum goodness measure fordigital content that is to be included in the media presentation.

In some implementations, a notification is provided to the user when amedia presentation is available. In some examples, a low-resolutionversion of the media presentation can be initially provided. Forexample, the low-resolution media presentation can includelower-resolution version of digital content, and/or a reduced number ofdigital content. In this manner, providing the low-resolution version ofthe media presentation can consume reduced resources (e.g., processors,memory, bandwidth), as compared to the full (e.g., high-resolution)media presentation. In some examples, the user can provide user inputindicating a request for the full media presentation, which is providedin response to the user input.

Implementations of the present disclosure further provide processingmodes based on different phases of media gradation that can occur atdifferent times. In some implementations, a light processing mode (e.g.,metadata, face, histograms), and a heavy processing mode (e.g., blur,faces) are provided. In some implementations, the light processingincludes processing of digital content that is performed before anymedia presentation is provided (e.g., suggested) to the user. In someexamples, processing in the light processing mode is performed onlower-resolution digital content of more robust digital content (e.g.,processing a thumbnail of an image). In some implementations, results ofthe light processing mode can be used to determine whether a sufficientnumber of media of sufficient quality is available to provide a mediapresentation. In some implementations, if the results of the lightprocessing mode indicate that a sufficient number of media of sufficientquality is available, the full digital content can be retrieved andprocessed to provide a media presentation. In some examples, processingin the heavy processing is performed to provide a more precise qualitygrade when making the selection of digital content to be included in themedia presentation.

In accordance with implementations of the present disclosure, the mediapresentation includes digital content of a respective sub-set of digitalcontent. In some implementations, the media presentation can be providedbased on a theme. In some examples, the theme can be one of a pluralityof themes. In general, a theme defines the look and/or impression of themedia presentation. In some examples, a theme can define a color paletteused in the presentation, and/or a manner in which digital content isdisplayed. In some examples, digital content can be displayed withinframes of the media presentation, where the theme defines a shape of theframe (e.g., square, rectangular, circular, oval, triangular, rhombus,cubical, spherical). In some examples, the theme defines how the digitalcontent is introduced for display (e.g., fade-in, pixel-in (anincreasing number of pixels are displayed until the full digital contentis displayed), slide-in (from an edge of the display). In some examples,the theme defines how the digital content is removed from display (e.g.,fade-out, pixel-out (a decreasing number of pixels are displayed untilthe digital content is no longer displayed), slide-out (to an edge ofthe display). In some examples, the theme defines a number of items ofdigital content that are concurrently displayed. In some examples, onlya single item of digital content is displayed at any one time. In someexamples, multiple items of digital content can be displayed at the sametime.

In some implementations, the media presentation includes sound. In someexamples, the sound includes music. In some examples, the music caninclude default music. In some examples, the music can include musicthat is provided by the user (e.g., music that is stored on thecomputing device 110). In some examples, the music can include musicthat is provided by the presentation service. In some examples, themusic can include music that is provided by a music service (e.g., amusic-streaming service).

In some examples, the media presentation is displayed to one or moreusers (e.g., on a display of the computing device 110, 112). Forexample, the media presentation can be displayed on the computing device110 for viewing by the user 120. In some examples, the mediapresentation can be made available for viewing by other users. Forexample, the media presentation can be made available for display on thecomputing device 112 for display to the user 122. In some examples, theuser, for which the media presentation is created (e.g., the user 110)can share the media presentation by selecting a share command providedby the media presentation service. In some examples, and in response tothe share command one or more share options can be presented to theuser. Example share options can include sharing through the mediapresentation service, sharing through an electronic message (e.g., anemail), and sharing through a computer-implemented service. In someexamples, the user can identify one or more other users, with which themedia presentation is to be shared. For example, the user can select anemail share option and can provide one or more email addresses forrespective users, with which the presentation is to be shared (e.g., anemail is sent that includes a link to the presentation).

In some implementations, the media presentation can be duplicated (e.g.,copied). In some examples, a duplicate media presentation is static,such that it is not automatically updated as underlying digital contentchanges. In this manner, the duplicate presentation captures theoriginal media presentation at a moment in time (e.g., before subsequentchanges occur to the underlying digital content).

In some implementations, the media presentation can facilitateinteractions of the user observing the media presentation with thedigital content underlying the presentation. For example, and asdiscussed above, items of digital content that are included in the mediapresentations can include interactions associated therewith. Exampleinteractions can include comments, shares, and/or “likes” of the item ofdigital content (e.g., users can comment on, share and/or “like” an itemof digital content within the computer-implemented service, from whichthe item of digital content was received). Consequently, the mediapresentation can display an item of digital content and one or moreinteractions associated with the item. In some examples, a userobserving the media presentation may wish to interact with the itemand/or interactions. For example, the user may observe an item that theuser wishes to comment on, share, and/or “like.” Accordingly,implementations of the present disclosure provide interaction elementsthat can be provided within the media presentation to enable the user tointeract with items of digital content. In some examples, the user'sinteraction can be directly recorded in the media presentation, suchthat the interaction is displayed in the media presentation and/orsubsequent displays of the media presentation. In some examples, theuser's interaction is fed back to the data source, from which the itemof digital content originated. For example, a media presentation caninclude an image provided from a social networking service. The userobserving the media presentation can input a comment to the image, whichcomment can be fed back to the social networking service. Consequently,the comment can be included in subsequent displays of the image withinthe social networking service.

In some implementations, the media presentation can be automaticallyupdated based on changes to digital content from the one or more datasources underlying the media presentation. In some examples, digitalcontent provided in the sub-set of digital content underlying the mediapresentation can change. For example, after the media presentation isinitially created, an item of digital content can be added to thesub-set of digital content underlying the media presentation.Consequently, the media presentation can subsequently include the addeditem of digital content. As another example, after the mediapresentation is initially created, an item of digital content can beremoved from the sub-set of digital content underlying the mediapresentation. Consequently, the media presentation can subsequently beabsent of the removed item of digital content. As another example, afterthe media presentation is initially created, one or more interactionscan occur with items of digital content within the underlying datasource(s) (e.g., user can comment on an image within a social networkingservice, which image is provided in the media presentation from thesocial networking service). Consequently, items and/or interactionsassociated therewith can be updated within the media presentation toinclude the subsequent interactions. In some examples, updating of apresentation can occur in real-time (e.g., as one or more users areviewing the presentation).

In some implementations, a user can edit a media presentation. In someexamples, and as discussed above, a media presentation can beautomatically provided. In some examples, the user can edit thepresentation by adding and/or removing items of digital content to/fromthe media presentation, changing the theme of the media presentation,and/or adding and/or removing music that is to play during presentationof the media presentation.

In some implementations, a user can manually create media presentations.In some examples, items of digital content that are available forpresentations can be displayed to the user. In some examples, the usercan select individual items that are to be included in the subjectpresentation. In some examples, the user can select the theme of thepresentation, and music that is to be played during the presentation.

FIG. 2 depicts an example environment 200 to provide media presentationsbased on digital content from one or more data sources. The exampleenvironment 200 includes a presentation engine 202, a presentation datastore 204, and a plurality of data sources (DS₁, . . . , DS_(n)) 206. Insome examples, the presentation engine 202 and the presentation datastore 204 are provided by a computing system (e.g., the computing system102 of FIG. 1). In some examples, the presentation engine 202 isprovided as one or more computer-executable programs that can beexecuted to provide functionality discussed herein. In some examples,one or more data sources 206 are associated with respectivecomputer-implemented services. In some examples, one or more datasources 206 are provided from respective computing devices (e.g., thecomputing device 110). In some examples, the presentation engine 202receives digital content from one or more of the data sources 206 (e.g.,over the network 114 of FIG. 1, through respective APIs).

In some implementations, a user 210 provides input to the presentationengine 202. For example, the user can provide one or more credentials tothe presentation engine 202, which credentials the presentation engine202 can use to access the one or more data sources 206. In someexamples, the user 210 can provide input to share one or more mediapresentations with one or more other users, as discussed above. In someexamples, the user 210 can provide input to modify a media presentation,as discussed above. In some examples, the user 210 can provide input tocreate a media presentation, as discussed above.

In some examples, media presentations provided through the presentationengine 202 are stored in the presentation store 204. In some examples,the presentation engine 202 can access a stored media presentation toupdate the media presentation, as discussed above.

In the depicted example, the presentation engine 202 includes a clustermodule 220, a goodness measure (GM) module 222, and a selection module224. In some examples, the cluster module 220 clusters digital contentreceived from the one or more data sources 206, as described herein. Insome examples, the goodness measure module 222 processes the digitalcontent to provide respective goodness measures for one or more items ofdigital content, as described herein. In some examples, the selectionmodule 224 selects items of digital content for inclusion in a mediapresentation, as described herein.

FIG. 3 depicts an example process 300 that can be executed in accordancewith implementations of the present disclosure. The example process 300can be implemented, for example, by the computing system 102 of FIG. 1.In some examples, the example process 300 can be provided by one or morecomputer-executable programs executed using one or more computingdevices. In some implementations, the example process 300 is performedto provide one or more presentations.

User credentials associated with a user are received (302). For example,for each data source of a plurality of data sources, respective usercredentials can be received from the user. One or more data sources areaccessed based on the user credentials (304). For example, apresentation service can access a data source based on the usercredentials (e.g., through an API). In some examples, at least one datasource includes a computer-implemented service used by the user. Aplurality of digital content is received from the one or more datasources (306). For example, the presentation service can receive itemsof digital content and any associated interactions from respective datasources. The plurality of digital content is processed to provide one ormore presentations (308). In some examples, the plurality of digitalcontent is processed to provide a sub-set of digital content, and eachpresentation includes items of digital content of the sub-set of digitalcontent. The one or more presentations are provided for display on acomputing device of the user (310).

In some implementations, one or more actions can be performedautomatically (i.e., without requiring user input). In some examples,one or more of the actions 304, 306, 308, 310 can be automaticallyperformed. In some examples, the one or more actions 304, 306, 308, 310are automatically performed in response to receiving the usercredentials. In this manner, the user provides the credentials and isprovided one or more presentations without requiring any additional useractivity.

FIGS. 4-13 depict example screenshots that can be provided in accordancewith implementations of the present disclosure. The terms “vemory” and“vemories” provided in FIGS. 4-13 respectively refer to “presentation”and “presentations.” That is, the term vemory refers to a presentation,and the term vemories refers to multiple presentations.

With particular reference to FIG. 4, a screenshot is provided anddepicts an initial screen 400 that can be presented to a user of thepresentation service (e.g., to a new user of the presentation service,no presentations have yet been created for the user). The initial screen402 includes a plurality of icons 404, 406, 408, 410, 412, 414, eachicon representing a respective data source, from which the presentationservice can receive digital content for providing one or morepresentations. The user can select an icon 404, 406, 408, 410, 412, 414(e.g., by clicking (mouse) on the icon, by tapping (touchscreen) on theicon. In the depicted example, the screen 400 includes an element 420that can be selected by the user. In some examples, in response to userselection of the element 420, the computing device that the user isusing (e.g., the computing device 110) can be provided as a data sourcefor digital content (e.g., digital content stored in memory of thecomputing device).

FIG. 5 depicts the screen 400 after the user has selected the icon 406.In response to user-selection of the icon 406 a credential interface 500is displayed. In the depicted example, the credential interface 500provides a name 502 that indicates the data source, and provides inputinterfaces 504, 506 for the user to input credentials (e.g., username,password). The credential interface 500 also includes a “Log In” button508. For example, after the user has provided credentials to the inputinterfaces 504, 506, the user can select the “Log In” button 508 to loginto the respective service (Instagram in the depicted example). In thismanner, the presentation service can function as a proxy for the user tolog into respective services.

FIG. 6 depicts the screen 400 after the user has logged into a pluralityof services (e.g., Instagram, Flickr, Camera+). In response to the userhaving logged into at least one service, an element 600 is enabled forselection by the user. In some examples, user-selection of the element600 initiates provision of one or more presentations based on digitalcontent from the plurality of services, as discussed in detail herein.In the example of FIG. 6, respective presentation indicators 602, 604,606 are provided. In some examples, a presentation indicator indicates anumber of presentations that have been provided based on digital contentfrom the respective service. In some examples, a presentation indicatorindicates a number of presentations that could be provided based ondigital content from the respective service.

FIG. 7 depicts a screen 700 that can be presented to the user, andincludes one or more representations 702 of respective presentations. Inthe depicted example, a parameter menu 703 is provided and includes oneor more parameters therein. In the depicted example, the parametersinclude time, hashtags, location and album, where time is selected.Consequently, the representations 702 correspond to presentations thatwere created at least partially based on the time parameter.Accordingly, the user can select a parameter from the parameter menu tofilter which representations 702 are displayed in the screen 700.

In some implementations, each representation 102 includes a thumbnailimage 704 and information 706 associated with the presentation. Exampleinformation includes a title of the presentation (e.g., John's BonVoyage), a number and type of items of content included in thepresentation (e.g., 108 photos), and a duration of the presentation(e.g., 5:19 mins). In some examples, an auto-update indicator 708 can beprovided, which indicates that the particular presentation isautomatically updated, as discussed herein.

In some examples, the user can select a representation 702 to inducefurther activity with respect to the represented presentation. Forexample, the user can “click-on” (or tap) a representation 702, and amenu 712 can be displayed. In some examples, the menu 712 includes oneor more actions the user can initiate with respect to the representedpresentation. In the depicted example, the menu 712 includes a previewaction, an edit action, a duplicate action and a delete action. In someexamples, the preview action, when selected by the user, initiatesplaying of the presentation to the user. In some examples, the editaction, when selected by the user, initiates editing of the presentation(e.g., navigation to an edit screen, discussed in further detailherein). In some examples, the duplicate action, when selected by theuser, initiates duplication of the presentation, as discussed herein. Insome examples, the delete action, when selected by the user, results indeletion of the presentation. As another example, the user can “swipe” arepresentation 702, and in response, the representation 702 can beanimated to display an icon 716. In the depicted example, the icon 716represents the delete action.

In some implementations, a representation 720 is provided to enable theuser to initiate creation of a presentation. In some examples, the userselects the representation 720, and in response, creation of apresentation is initiated (e.g., navigation to a create screen,discussed in further detail herein).

In some implementations, an icon menu 730 is provided and includes icongroups 732, 734. Icons in each of the icon groups 732, 734, each iconrepresents a respective data source, from which the presentation servicecan receive digital content for providing one or more presentations (assimilarly discussed above with reference to FIG. 4). In the depictedexample, icons of the icon group 732 represent data sources that havenot been accessed for digital content (e.g., the user has not yetselected any of the data sources represented in the icon group 732). Onthe other hand, icons of the icon group 734 represent data sources thathave been accessed for digital content (e.g., the user has selected thedata sources represented in the icon group 734). In some examples, andas discussed in further detail herein, the user can select an icon fromthe icon group 732 to log into a data source for inclusion in thecreation of presentations. In some examples, the user can select an iconfrom the icon group 734 to log out of a data source, such that the datasource is no longer included in the creation of presentations.

FIG. 8 depicts a screen 800. In some examples, the screen 800 can bedisplayed in response to the user initiating an action from the screen700 of FIG. 7. For example, and with reference to FIG. 7, the user canselect the duplicate action from the menu 712, and in response, thescreen 800 can be displayed. In the depicted example, the screen 800includes a header 802, a display portion 804, and a display portion 806.In some examples, the display portion 804 depicts items of content of aparticular presentation. For example, and in response to the userselecting the duplicate action for the presentation “Brenton'sPhotoshoot!,” this display portion depicts items 808 that are includedin this presentation. In the depicted example, each of the items 808 isprovided as an image. It is appreciated, however, and as discussedabove, items of digital content can include any appropriate types ofdigital content (e.g., images, videos).

In the depicted example, the screen 800 includes a menu 810, whichinclude options that can be selected by the user. Example optionsinclude items (e.g., “Photos”), sounds (e.g., “Music”) and theme. Forexample, the user can select an option from the menu 810 to edit aspectsof the presentation depicted in the display portion 804. In the depictedexample, the “Photos” option is selected. Consequently, images of thepresentation are displayed (e.g., as items 808) in the display portion804. In some examples, the user can select the “Music” option to selectmusic that can be played during presentation of the presentation. Insome examples, the user can select the “Theme” option to select thetheme that defines the look and feel of the presentation as it ispresented. In some implementations, the display portion 806 displaysitems of digital content from one or more other presentations.

In the depicted example, the screen includes an icon menu 812. In someexamples, each icon in the icon menu 812 represents a respective datasource, from which the presentation service can receive digital contentfor providing one or more presentations (as similarly discussed abovewith reference to FIGS. 4 and 7). In some examples, items of digitalcontent that are displayed in the display portion 806 are determinedbased on an icon selected from the icon menu 812. In the depictedexample, the icon associated with the data source “instagram” isselected. Consequently, items of digital content of the presentationsdisplayed in the display portion 806 include items received from thatparticular data source. In some examples, the icon menu 812 includes an“all” icon, which, when selected, results in items of digital contentfrom all of the data sources (that the user has logged in to) to bedisplayed in the display portion 806.

FIG. 9 depicts the screen 800 in response to user selection of an iconfrom the icon menu 812. In the depicted example, it is determined thatthe user has not yet logged in to the data source that is represented bythe icon selected by the user (e.g., “Picasa”). Consequently, thedisplay portion 806 displays a credential interface that the user caninteract with to log in to the data source (e.g., as similarly describedabove with respect to the credential interface 500 of FIG. 5).

FIG. 10 depicts the screen 800 in response to user selection of an item808 displayed in the display portion 804. More particularly, in responseto user selection of an item 808 in the display portion 804, the item isdisplayed in the display portion 806. In some examples, interactions ofusers with the item 808 are also displayed. As discussed above,interactions of users with an item of digital content can includecomments, shares, and/or “likes” of the item of digital content (e.g.,other users can comment on, share and/or “like” an item of digitalcontent within the computer-implemented service, from which the item ofdigital content was received). In the example of FIG. 10, a number of“likes” is represented by an indicator 1000, and a list 1002 of commentsassociated with the item 808 is provided. In some examples, the list ofcomments 1002 provides all comments that have been associated with theitem 808. In some examples, the user can select individual comments 1004from the list of comments 1002. In some examples, only the individualcomments 1004 that are selected by the user are included in theunderlying presentation. In this manner, the user can modify thepresentation to include and/or exclude comments. In the depictedexample, the user is modifying a duplicate presentation (e.g., aduplicate of the presentation “Brenton's Photoshoot!”). Consequently,the original presentation remains unmodified.

FIG. 11 depicts the screen 800 in response to user selection of the“Music” option from the menu 810. In the depicted example, the user hasselected the “Music” option to select music for the presentation“Lindsay's Birthday!.” In response to user selection of the “Music”option, one or more representations 1100 of respective songs aredisplayed in the display portion 804. In some examples, such as theexample of FIG. 11, a plurality of songs can be associated with aparticular presentation. In this manner, one or more songs of theplurality of songs can be played during the presentation of thepresentation. In some examples, the songs can be played in a definedorder (e.g., a default order, a user-defined order). In some examples,the order that the songs are played in can be random.

In the example of FIG. 11, the display portion 806 displays artists1102, albums 1104, and songs 1106 that the user can select for inclusionin the presentation. In some examples, the artists 1102, the albums1104, and the songs 1106 are provided from a music source. In someexamples, the music source can include digital music stored on acomputing device of the user. In some examples, the music source caninclude a web-based (or online) music source, such as a music-streamingservice. In the depicted example, the music source “Spotify” has beenselected, as indicated by an icon 1110. An icon 1112 is also depicted,which indicates the computing device of the user as an available musicsource. In some examples, one or more songs can be selected from thedisplay portion 806, and the selected one or more songs can be displayedin the display portion 804. In some examples, songs that are associatedwith a particular presentation can be provided from multiple musicsources.

FIG. 11 depicts the screen 800 in response to user selection of the“Theme” option from the menu 810. In the depicted example, the user hasselected the “Theme” option to select a theme that will define the lookand feel of the presentation “Lindsay's Birthday!.” In response to userselection of the “Theme” option, one or more representations 1200, 1202(shown in FIG. 12) of respective themes are displayed. In some examples,one or more free themes are provided by the presentation service. Forexample, the representations 1200 indicate themes that are provided bythe presentation service at no cost to the user. In some examples, oneor more paid themes are provided by the presentation service. Forexample, the representations 1202 indicate themes that are provided bythe presentation service for a cost to the user. In some examples, thetheme that is selected for the particular presentation is indicated by aselected icon 1204. In the depicted example, the theme “Light Cubes” hasbeen selected for the presentation “Lindsay's Birthday!.” In someexamples, a play icon 1206 is provided with the representations 1200,1202. In some examples, the user can select a play icon 1206 to initiatea preview of the presentation based on the respective theme.

FIG. 13 depicts a screen 1300 for presenting a presentation to the user.In the depicted example, the presentation is provided as “Jeremy'sPhotoshoot!” and uses the theme “Light Cubes.” As discussed herein, thepresentation includes a sub-set of items of digital content that arepresented to the user and also include respective interactionsassociated with the items of digital content. As also discussed herein,the theme defines the look and feel of the presentation. In the depictedexample, each item of digital content is provided in a cube 1302 andinteractions associated with the respective item of digital content isprovide in a cube 1304. In the depicted example, and as defined in thetheme, the cubes 1302 move between the foreground and the background ofthe screen 1300. The cube that is displayed in the foreground includes arespective cube 1304, which displays the interactions associated withthe item of digital content provided in the cube 1302. In some examples,the cubes 1302 displayed in the background can be animated to moveacross the screen (e.g., vertically and/or horizontally) and/or to movebetween the foreground and background.

In some examples, the cube 1304 can be animated to display theinteractions. In the depicted example, interactions 1306, 1308 areprovided on a face of the cube 1304. In the depicted example, theinteractions include a comment and a number of “likes” associated withthe comment. In some examples, the cube 1304 can be animated to rotate,such that another face of the cube 1304, and thus other interactionsassociated with the item, are displayed.

In some examples, movement of the cubes 1302, 1304 can be automatic(e.g., cubes 1302 randomly move into or out-of the foreground, and/orcubes 1302 move randomly in the background). In some examples, and asdiscussed herein, the presentation is interactive, such that the usercan control movement of the cubes 1302, 1304. For example, the user canselect (e.g., tap on) a cube 1302 in the background, which can inducemovement of the selected cube 1302 to the foreground, and movement of acube 1302 that was already displayed in the foreground back to thebackground. In some examples, the user can swipe the cube 1304 to inducerotation of the cube 1304, thereby displaying another face of the cube1304.

In some implementations, and as discussed herein, the user can interactwith the presentation to provide interactions through the presentation.For example, the user can comment on an item of digital content that isdisplayed in the presentation. In some examples, the interaction is fedback to the data source, such that the interaction can be displayed inother forums (e.g., within the social networking service that the itemof digital content originated from). In some examples, interactionelements can be displayed within the presentation to facilitateinteractions by the user. For example, and although not depicted in FIG.13, the cube 1302 and/or the cube 1302 can include one or moreinteractions elements that facilitate interactions by the user.

In some implementations, a presentation can include one or moreadvertisements embedded therein. In some examples, one or moreadvertisements can be interspersed between items of digital contentduring the presentation. In some implementations, advertisements can berandomly selected (e.g., by the presentation service) for inclusion inthe presentation. In some implementations, advertisements can bemanually selected (e.g., by the user) for inclusion in the presentation.In some examples, advertisements can be provided based on content of thepresentation. For example, if the presentation is directed to a birthdayparty, advertisements associated with decorations and/or birthday cakescan be included in the presentation.

As discussed herein, implementations of the present disclosure aredirected to aggregating digital content from across one or morecomputer-implemented services, processing the digital content, andproviding one or more presentations, each presentation including digitalcontent of the one or more computer-implemented services. In someimplementations, the presentation service of the present disclosureautomatically queries accounts (e.g., social networking accounts,content-sharing accounts) for a particular user and dynamicallyconstructs one or more presentations (e.g., slide shows), whichpresentations are animated and interactive. In this manner, eachpresentation provides an imprint of the user's social network and/orcontent sharing activities, for example, as well as interactions therein(e.g., comments, sharing, “likes”). That is, each presentation providesan imprint across the user's social networking continuum. In someimplementations, created presentations can be immediately re-shared tothe social media platform of choice, for example. In someimplementations, the presentations are provided in the cloud and can bestreamed to one or more computing devices for display to respectiveusers.

FIG. 14 depicts an example process 1400 that can be executed inaccordance with implementations of the present disclosure. The exampleprocess 1400 can be implemented, for example, by the computing system102, and/or the device 110, 112 of FIG. 1 (e.g., executing thepresentation engine 202 of FIG. 2). In some examples, the exampleprocess 1400 can be provided by one or more computer-executable programsexecuted using one or more computing devices. In some implementations,the example process 1400 is performed to select digital content forinclusion in a media presentation.

Items of digital content are clustered (1402). For example, the clustermodule 220 clusters items of digital content received from the one ormore sources 206, as described herein, to provide a set of clusters C₁,. . . , C_(i). In some examples, each set of clusters C₁, . . . , C_(i)includes one or more items of digital content. A counter m is set equalto 1 (1404). Goodness measures are determined for each item of digitalcontent within the cluster C_(m) (1406). For example, the goodnessmeasure module 222 of FIG. 2 provides a goodness measure for each itemof digital content within the cluster C_(m), as described herein.

Digital content is selected from the cluster C_(m) (1408) for potentialinclusion in a media presentation. For example, the selection module 224of FIG. 2 selects one or more items of digital content from the clusterCm for potential inclusion in the media presentation, as describedherein (e.g., based on goodness measures, user input). It is determinedwhether redundant content is included in the selected digital content(1410). For example, if two or more items of digital content areselected (e.g., in 1408), metadata and goodness measures can be comparedbetween items of digital content to identify items of digital content asredundant (e.g., the overlap in metadata exceeds a threshold overlap,and the difference in goodness measures is less than a thresholddifference). If none of the digital content is determined to beredundant, the digital content selected from the cluster Cm is providedfor inclusion in the media presentation (1412).

If at least two items of digital content are determined to be redundant,it is determined whether the respective goodness measures exceed athreshold goodness measure (1414). If the goodness measures exceed thethreshold goodness measure, the redundant items of digital content areprovided for inclusion in the media presentation (1412). In other words,although the items of digital content might be redundant, theirrespective qualities are sufficiently high, such that they are selectedfor inclusion in the media presentation. If at least one of the goodnessmeasures does not exceed the threshold goodness measure, redundantdigital content is removed (1416) (e.g., digital content having thelower goodness measure).

It is determined whether the counter m is equal to i (1418). If thecounter m is not equal to i, all of the sets of clusters C₁, . . . ,C_(i) have not been processed. Consequently, the counter m isincremented (1422), and the example process loops back. If the counter mis equal to i, all of the sets of clusters C₁, . . . , C_(i) have beenprocessed. Consequently, the media presentation, which includes digitalcontent from the sets of clusters C₁, . . . , C_(i), is provided to theuser (1420).

Implementations of the present disclosure achieve one or more of thefollowing example advantages. In some examples, resources (e.g.,processors, memory, bandwidth) are conserved. For example, by removingrelatively lower quality digital content, media presentations can beleaner, requiring less resources to provide media presentations to theuser.

Implementations of the subject matter and the operations described inthis specification can be realized in digital electronic circuitry, orin computer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Implementations of the subjectmatter described in this specification can be realized using one or morecomputer programs (i.e., one or more modules of computer programinstructions) encoded on computer storage medium for execution by, or tocontrol the operation of, data processing apparatus. Alternatively or inaddition, the program instructions can be encoded on anartificially-generated propagated signal (e.g., a machine-generatedelectrical, optical, or electromagnetic signal) that is generated toencode information for transmission to suitable receiver apparatus forexecution by a data processing apparatus. A computer storage medium canbe, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can be a source or destination of computer programinstructions encoded in an artificially-generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (e.g., multiple CDs, disks, orother storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application-specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question (e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more ofthem). The apparatus and execution environment can realize variousdifferent computing model infrastructures, such as web services,distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub-programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. Elements of a computer can include aprocessor for performing actions in accordance with instructions and oneor more memory devices for storing instructions and data. Generally, acomputer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto-optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), to name just a few.Devices suitable for storing computer program instructions and datainclude all forms of non-volatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Implementations of the subject matter described in this specificationcan be implemented in a computing system that includes a back-endcomponent, e.g., as a data server, or that includes a middlewarecomponent, e.g., an application server, or that includes a front-endcomponent, e.g., a client computer having a graphical user interface ora Web browser through which a user can interact with an implementationof the subject matter described in this specification, or anycombination of one or more such back-end, middleware, or front-endcomponents. The components of the system can be interconnected by anyform or medium of digital data communication, e.g., a communicationnetwork. Examples of communication networks include a local area network(“LAN”) and a wide area network (“WAN”), an inter-network (e.g., theInternet), and peer-to-peer networks (e.g., ad hoc peer-to-peernetworks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someimplementations, a server transmits data (e.g., an HTML page) to aclient device (e.g., for purposes of displaying data to and receivinguser input from a user interacting with the client device). Datagenerated at the client device (e.g., a result of the user interaction)can be received from the client device at the server.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyimplementation of the present disclosure or of what may be claimed, butrather as descriptions of features specific to example implementations.Certain features that are described in this specification in the contextof separate implementations can also be implemented in combination in asingle implementation. Conversely, various features that are describedin the context of a single implementation can also be implemented inmultiple implementations separately or in any suitable sub-combination.Moreover, although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the implementations described above should not beunderstood as requiring such separation in all implementations, and itshould be understood that the described program components and systemscan generally be integrated together in a single software product orpackaged into multiple software products.

Thus, particular implementations of the subject matter have beendescribed. Other implementations are within the scope of the followingclaims. In some cases, the actions recited in the claims can beperformed in a different order and still achieve desirable results. Inaddition, the processes depicted in the accompanying figures do notnecessarily require the particular order shown, or sequential order, toachieve desirable results. In certain implementations, multitasking andparallel processing may be advantageous.

What is claimed is:
 1. A system comprising: one or more processorsconfigured perform operations comprising: clustering items of digitalcontent into a hierarchy of clusters, the hierarchy of clustersincluding moment clusters and scene clusters, individual moment clustersincluding two or more of the scene clusters, and individual sceneclusters including one or more of the items of digital content;determining a goodness measure for individual items of digital contentwithin the individual scene clusters, the goodness measure indicating aquality of a respective item of digital content; selecting two or moreof the items of digital content for potential inclusion in a mediapresentation based on a hierarchical process of identifying at least oneitem of digital content from the individual scene clusters based on thegoodness measure and selecting a plurality of the identified items ofdigital content from the individual moment clusters for potentialinclusion in the media presentation, wherein the selected items ofdigital content include a first item of digital content and a seconditem of digital content; identifying redundant digital content fromamong the selected items of digital content such that the first item ofdigital content is identified as being redundant of the second item ofdigital content; removing an item of redundant digital content from theselected items of digital content for potential inclusion in the mediapresentation based on whether or not the quality of the item ofredundant digital content indicated by the respective goodness measureis sufficiently high such that the item of redundant digital content isremoved from the selected items of digital content based on therespective goodness measure of the item of redundant digital content notexceeding a threshold goodness measure while the item of redundantdigital content is retained as one of the selected items of digitalcontent based on the respective goodness measure of the item ofredundant digital content exceeding the threshold goodness measure,wherein the respective goodness measure of the item of redundant digitalcontent exceeding the threshold goodness measure indicates that thequality of the item of redundant digital content is sufficiently highsuch that removal of the item of redundant digital content frompotential inclusion in the media presentation is not performed; andproviding the media presentation for display on a computing device of auser, the media presentation comprising at least one of the selecteditems of digital content.
 2. The system of claim 1, wherein theredundant digital content are identified among the selected items ofdigital content based on an overlap between metadata associated with therespective items of digital content exceeding a threshold overlap. 3.The system of claim 2, wherein the redundant digital content areidentified further based on a difference in the respective goodnessmeasures.
 4. The system of claim 3, wherein the redundant digitalcontent are identified further based on the difference in the respectivegoodness measures being less than a threshold difference.
 5. The systemof claim 1, wherein the goodness measure is determined based on metadataassociated with the respective item of digital content and/or content ofthe respective item of digital content.
 6. The system of claim 5,wherein the metadata comprises time, location, duration, keyword, andtype.
 7. The system of claim 1, wherein the items of digital contentcomprise images, videos or text.
 8. The system of claim 1, wherein atleast some of the items of digital content are received from acomputer-implemented service accessed by the user.
 9. The system ofclaim 1, wherein at least some of the items of digital content arereceived from the computing device of the user.
 10. The system of claim1, wherein the individual moment clusters correspond to a period oftime, and the individual scene clusters correspond to a sub-period oftime.
 11. The system of claim 10, wherein the period of timecorresponding to the individual moment clusters is changed based on anumber of items of digital content within one or more of the momentclusters.
 12. The system of claim 1, wherein the individual momentclusters correspond to a geographic area, and the individual sceneclusters correspond to a sub-geographic area.
 13. The system of claim12, wherein the geographic area corresponding to the individual momentclusters is changed based on a number of items of digital content withinone or more of the moment clusters.
 14. The system of claim 1, wherein anumber of items of digital content selected from the individual momentclusters for inclusion in the media presentation is based on sizes ofthe individual moment clusters.
 15. The system of claim 1, whereinmetadata associated with the respective item of digital content includesvalues for brightness, contrast, blur/sharpness, and/or number of humanfaces in the respective item of digital content, and the goodnessmeasure for the respective item of digital content is determined basedon the values for brightness, contrast, blur/sharpness, and/or number ofhuman faces.
 16. The system of claim 15, wherein the goodness measurefor the respective item of digital content is determined based on aweighted average of the values for brightness, contrast, blur/sharpness,and/or number of human faces.
 17. The system of claim 1, wherein thegoodness measure for the respective item of digital content is set to aminimum value based on the metadata associated with the respective itemof digital content not including any values for brightness, contrast,blur/sharpness, or number of human faces in the respective item ofdigital content.
 18. The system of claim 1, wherein the respective itemof digital content is removed from a respective cluster based on themetadata associated with the respective item of digital content notincluding any values for brightness, contrast, blur/sharpness, or numberof human faces in the respective item of digital content.
 19. Acomputer-implemented method for selecting digital content to be includedin a media presentation, the method being executed using one or moreprocessors and comprising: clustering, by the one or more processors,items of digital content into a hierarchy of clusters, the hierarchy ofclusters including moment clusters and scene clusters, individual momentclusters including two or more of the scene clusters, and individualscene clusters including one or more of the items of digital content;determining, by the one or more processors, a goodness measure forindividual items of digital content within the individual sceneclusters, the goodness measure indicating a quality of a respective itemof digital content; selecting, by the one or more processors, two ormore of the items of digital content for potential inclusion in a mediapresentation based on a hierarchical process of identifying at least oneitem of digital content from the individual scene clusters based on thegoodness measure and selecting a plurality of the identified items ofdigital content from the individual moment clusters for potentialinclusion in the media presentation, wherein the selected items ofdigital content include a first item of digital content and a seconditem of digital content; identifying, by the one or more processors,redundant digital content from among the selected items of digitalcontent such that the first item of digital content is identified asbeing redundant of the second item of digital content; removing, by theone or more processors, an item of redundant digital content from theselected items of digital content for potential inclusion in the mediapresentation based on whether or not the quality of the item ofredundant digital content indicated by the respective goodness measureis sufficiently high such that the item of redundant digital content isremoved from the selected items of digital content based on therespective goodness measure of the item of digital content not exceedinga threshold goodness measure while the item of redundant digital contentis retained as one of the selected items of digital content based on therespective goodness measure of the item of redundant digital contentexceeding the threshold goodness measure, wherein the respectivegoodness measure of the item of redundant digital content exceeding thethreshold goodness measure indicates that the quality of the item ofredundant digital content is sufficiently high such that that removal ofthe item of redundant digital content from potential inclusion in themedia presentation is not performed; and providing, by the one or moreprocessors, the media presentation for display on a computing device ofa user, the media presentation comprising at least one of the selecteditems of digital content.
 20. A non-transitory computer readable mediumstoring instructions that, when executed by one or more processors,cause the one or more processors to perform operations comprising:clustering items of digital content into a hierarchy of clusters, thehierarchy of clusters including moment clusters and scene clusters,individual moment clusters including two or more of the scene clusters,and individual scene clusters including one or more of the items ofdigital content; determining a goodness measure for individual items ofdigital content within the individual scene clusters, the goodnessmeasure indicating a quality of a respective item of digital content;selecting two or more of the items of digital content for potentialinclusion in a media presentation based on a hierarchical process ofidentifying at least one item of digital content from the individualscene clusters based on the goodness measure and selecting a pluralityof the identified items of digital content from the individual momentclusters for potential inclusion in the media presentation, wherein theselected items of digital content include a first item of digitalcontent and a second item of digital content; identifying redundantdigital content from among the selected items of digital content suchthat the first item of digital content is identified as being redundantof the second item of digital content; removing an item of redundantdigital content from the selected items of digital content for potentialinclusion in the media presentation based on whether or not the qualityof the item of redundant digital content indicated by the respectivegoodness measure is sufficiently high such that the item of redundantdigital content is removed from the selected items of digital contentbased on the respective goodness measure of the item of redundantdigital content not exceeding a threshold goodness measure while theitem of redundant digital content is retained as one of the selecteditems of digital content based on the respective goodness measure of theitem of redundant digital content exceeding the threshold goodnessmeasure, wherein the respective goodness measure of the item ofredundant digital content exceeding the threshold goodness measureindicates that the quality of the item of redundant digital content issufficiently high such that removal of the item of redundant digitalcontent from potential inclusion in the media presentation is notperformed; and providing the media presentation for display on acomputing device of a user, the media presentation comprising at leastone of the selected items of digital content.